package com.wu.project.admin.dao;

import com.wu.project.admin.entity.AuthorityMenuDTO;
import com.wu.project.admin.entity.RoleMenuDTO;
import com.wu.project.admin.entity.UpdateRoleVO;

import java.util.List;
import java.util.Map;

/**
 * @author xuan
 */
public interface AuthorityDao {

    /**
     * 查询权限用户
     *
     * @return list
     */
    List<Map<String, Object>> queryUserList();

    /**
     * 查询菜单
     *
     * @param userId yonghuID
     * @return list
     */
    List<AuthorityMenuDTO> queryMenu(String userId);

    /**
     * @return list
     */
    List<Map<String, Object>> queryRole();

    /**
     * 获取角色
     *
     * @param roleId 角色ID
     * @return list
     */
    List<RoleMenuDTO> queryRoleMenuList(Long roleId);

    /**
     * 删除角色菜单表数据库
     *
     * @param roleMenuId 角色菜单ID
     * @return int
     */
    Integer deleteRoleMenu(Long roleMenuId);

    /**
     * 删除用户角色关联数据
     *
     * @param userRoleId 用户角色ID
     * @return int
     */
    Integer deleteUserRole(Long userRoleId);

    /**
     * 增加用户角色
     *
     * @param updateRoleVO 实体类参数
     * @return int
     */
    Integer addUserRole(UpdateRoleVO updateRoleVO);

    /**
     * 更新用户权限中间表
     *
     * @param updateRoleVO 实体类参数
     * @return int
     */
    Integer updateUserRole(UpdateRoleVO updateRoleVO);

    List<Map<String, Object>> queryUserRole(UpdateRoleVO updateRoleVO);
}
